package com.zqweb.common.valid;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet;
import java.util.Set;

// 实现ConstraintValidator接口，第1个参数：自定义的校验注解  第2个参数：校验的字段类型
public class CustomValidator implements ConstraintValidator<ListValue,Integer> {
    // 存储输入值情况
    private Set<Integer> set = new HashSet<>();

    // 初始化（根据声明注解时给属性传入的值，对注解内的相应属性进行赋值）
    @Override
    public void initialize(ListValue constraintAnnotation) {
        int[] val = constraintAnnotation.val();
        for (int v : val) {
            set.add(v);
        }
    }
    // 根据要进行校验的字段实际值进行1个校验
    @Override
    public boolean isValid(Integer realVal, ConstraintValidatorContext constraintValidatorContext) {
        return this.set.contains(realVal);
    }

}
